

#需要的库
import requests as rq
import pandas as pd

DATA=[]#存储数据
# 获取网页源代码
for page in range(10):
    # 爬取URl和页数
#    page=10*i
    url='https://maoyan.com/board/4?offset=0'+str(page*10)
#伪装浏览器
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
        }
    #获取网页源代码
    sources = rq.get(url,headers = header)
    #type(sources)
    data = sources.text #网页源代码
    # 第二步： 从网页源代码挖掘所要数据 --- 正则表达式获取
    import re
    #p=r'<dd>.*?board-index.*?(.*?)</i>'#爬取排名
    #p=r'<dd>>*?board-index>*?(.*?)</i>.*?src="(.*?)".*?</a>'
    #p=r'<dd>.*?board-index.*?(.*?)</i>.*?src="(.*?)".*?name"><a.*?(.*?)</a>'#爬取排名，图片，电影名数据
    #p='<dd>.*?board-index.*?(.*?)</i>.*?src="(.*?).*?name"><a.*?(.*?)</a>.*?star>(.*?)</p>'
    #p=r'<dd>.*?board-index.*?(.*?)</i>.*?src="(.*?)"name"><a.*?(.*?)</a>.*?star(.*?)</p>.*?releasetime">(.*?)</p>'
    #\d:1-9
    p = r'<dd>.*?board-index.*?>(\d+)</i>.*?src="(.*?)".*?name"><a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>'
    pat=re.compile(p,re.S)
    wj_data = pat.findall(data)
    
    for item in wj_data:
        da={}
        da['排名']= item[0]
        da['图片']= item[1]
        da['剧名']= item[2]
        da['主演']=item[3].strip()[3:]#strip()去掉空格
        da['上映时间']= item[4].strip()[5:]
        da['评分']=item[5] + item[6]
        print(da)
#        da=pd.DataFrame()
        date=DATA.append(da)
#转化为数据框
date=pd.DataFrame(DATA)

#    保存为excel
date.to_excel('猫眼电影(正则表达式)Top100.xlsx')
#    for j in da:
#        DATA.append(j)
#       
    


